package com.ruoyi.resume.service;

import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.resume.domain.model.Mappings;
import com.ruoyi.resume.domain.model.SplitResumeResult;
import com.ruoyi.resume.domain.model.resumeProfile.BasicInfo;
import com.ruoyi.resume.domain.response.ResumeAndTagsResp;
import com.ruoyi.resume.domain.response.ResumeDetailsResponse;
import com.ruoyi.resume.domain.response.SimilarCandidateResp;
import org.springframework.core.io.InputStreamResource;

import java.util.List;

public interface ResumeService {
    TableDataInfo getResumesByRange(String name, String gender, String nativePlace, String politicalStatus, Integer isOuter, Integer status);

    String downloadResume(int resumeId) throws Exception;

    int collectResume(int resumeId);

    List<ResumeAndTagsResp> getAllCollectedResumes(String name,String gender,String nativePlace,String politicalStatus);

    void deleteCollectedResume(int resumeId);

    void updateResumeStatus(int resumeId, int status);

    // 根据简历ID获取简历内容
    SplitResumeResult getResumeContentById(int resumeId);

    // 根据简历ID获取简历文件
    String getResumeFileById(int resumeId) throws Exception;

    void deleteResumeById(int resumeId) throws Exception;

    void updateResume(int resumeId, SplitResumeResult resumeDetailsResponse);

    BasicInfo getBasicInfoByResumeId(int resumeId);

    // 根据简历ID获取相似候选人的基本信息列表
    List<SimilarCandidateResp> getSimilarCandidatesByResumeId(int resumeId);

    // 根据标签列表获取符合条件的简历列表
    TableDataInfo getResumesByTags(List<String> tags);

    List<ResumeAndTagsResp> getLatestResumes();

    List<Mappings> getTalentMap();
}
